package SEG_DataLayer;

import CommonDataLayer.ConexionDB;
import SEG_EntityLayer.*;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;


public class SEG_ModuloDL {
    
    private final static SEG_ModuloDL _instancia = new SEG_ModuloDL();
    
    private SEG_ModuloDL() {
        
    }
    
    public static SEG_ModuloDL getInstancia() {
        return _instancia;
    }
    
    //-----------------------------------------------------------------------------
    // <editor-fold defaultstate="collapsed" desc="Select">
    
        /**
        * Lista los módulos que tiene acceso el usuario.
        * @return  una <code>Lista</code> de los módulos del usuario.
        * @author Juan Manuel Abanto Mera
        */
        public List<SEG_ModuloEL> ListarModuloxUsuario(int usuario) throws Exception {
            Connection conexion = null;
            try {
                conexion = ConexionDB.getInstancia().getConexion();
                CallableStatement sp = conexion.prepareCall("{call uspSEG_ListarModuloxUsuario(?) }");
                sp.setInt("prmintUsuario", usuario);
                ResultSet rs = sp.executeQuery();
                List<SEG_ModuloEL> lista = new ArrayList<SEG_ModuloEL>();
                
                while (rs.next()){
                    SEG_ModuloEL modulo = new SEG_ModuloEL();
                    modulo.setModulo(rs.getByte("Modulo"));
                    modulo.setNombre(rs.getString("Nombre"));
                    modulo.setDescripcion(rs.getString("Descripcion"));
                    modulo.setTooltip(rs.getString("Tooltip"));
                    modulo.setIcono(rs.getString("Icono"));
                    lista.add(modulo);
                }
                conexion.close();
                return lista;
            }
            catch(Exception ex) {
                throw new Exception(ex);
            }
            finally {
                if (conexion != null && !conexion.isClosed()) {
                    conexion.close();
                }
            }
        }
    
    // </editor-fold>
    
    //-------------------------------------------------------------------------------
    // <editor-fold defaultstate="collapsed" desc="Insert">
    // </editor-fold>
    
    //-------------------------------------------------------------------------------
    // <editor-fold defaultstate="collapsed" desc="Update">
    // </editor-fold>
    
    //------------------------------------------------------------------------------    
    // <editor-fold defaultstate="collapsed" desc="Delete">
    // </editor-fold>
        
}
